package com.zhonghui.common.eshopVo;

import cn.hutool.core.util.StrUtil;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.zhonghui.common.eshopSerializer.BigDecimalSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

@ApiModel(
        value = "YxStoreCombinationQueryVo对象",
        description = "拼团产品表查询参数"
)
public class StoreCombinationQueryVo  implements Serializable {
    private static final long serialVersionUID = 1L;
    private Long id;
    @ApiModelProperty("商品id")
    private Long productId;
    @ApiModelProperty("商户id")
    private Integer merId;
    @ApiModelProperty("推荐图")
    private String image;
    @ApiModelProperty("轮播图")
    private String images;
    private List<String> sliderImageArr;
    @ApiModelProperty("活动标题")
    private String title;
    @ApiModelProperty("参团人数")
    private Integer people;
    @ApiModelProperty("简介")
    private String info;
    @JsonSerialize(
            using = BigDecimalSerializer.class
    )
    @ApiModelProperty("价格")
    private BigDecimal price;
    @JsonSerialize(
            using = BigDecimalSerializer.class
    )
    @ApiModelProperty("商品价格")
    private BigDecimal productPrice;
    @ApiModelProperty("销量")
    private Integer sales;
    @ApiModelProperty("库存")
    private Integer stock;
    private Integer combination;
    @ApiModelProperty("是否包邮1是0否")
    private Integer isPostage;
    @JsonSerialize(
            using = BigDecimalSerializer.class
    )
    @ApiModelProperty("邮费")
    private BigDecimal postage;
    @ApiModelProperty("拼团内容")
    private String description;
    @ApiModelProperty("拼团订单有效时间")
    private Integer effectiveTime;
    @ApiModelProperty("浏览量")
    private Integer browse;
    @ApiModelProperty("单位名")
    private String unitName;
    @JsonProperty("is_sub")
    private Integer isSub;

    public List<String> getSliderImageArr() {
        return (List)(StrUtil.isNotEmpty(this.images) ? Arrays.asList(this.images.split(",")) : new ArrayList());
    }

    public StoreCombinationQueryVo() {
    }

    public Long getId() {
        return this.id;
    }

    public Long getProductId() {
        return this.productId;
    }

    public Integer getMerId() {
        return this.merId;
    }

    public String getImage() {
        return this.image;
    }

    public String getImages() {
        return this.images;
    }

    public String getTitle() {
        return this.title;
    }

    public Integer getPeople() {
        return this.people;
    }

    public String getInfo() {
        return this.info;
    }

    public BigDecimal getPrice() {
        return this.price;
    }

    public BigDecimal getProductPrice() {
        return this.productPrice;
    }

    public Integer getSales() {
        return this.sales;
    }

    public Integer getStock() {
        return this.stock;
    }

    public Integer getCombination() {
        return this.combination;
    }

    public Integer getIsPostage() {
        return this.isPostage;
    }

    public BigDecimal getPostage() {
        return this.postage;
    }

    public String getDescription() {
        return this.description;
    }

    public Integer getEffectiveTime() {
        return this.effectiveTime;
    }

    public Integer getBrowse() {
        return this.browse;
    }

    public String getUnitName() {
        return this.unitName;
    }

    public Integer getIsSub() {
        return this.isSub;
    }

    public void setId(final Long id) {
        this.id = id;
    }

    public void setProductId(final Long productId) {
        this.productId = productId;
    }

    public void setMerId(final Integer merId) {
        this.merId = merId;
    }

    public void setImage(final String image) {
        this.image = image;
    }

    public void setImages(final String images) {
        this.images = images;
    }

    public void setSliderImageArr(final List<String> sliderImageArr) {
        this.sliderImageArr = sliderImageArr;
    }

    public void setTitle(final String title) {
        this.title = title;
    }

    public void setPeople(final Integer people) {
        this.people = people;
    }

    public void setInfo(final String info) {
        this.info = info;
    }

    public void setPrice(final BigDecimal price) {
        this.price = price;
    }

    public void setProductPrice(final BigDecimal productPrice) {
        this.productPrice = productPrice;
    }

    public void setSales(final Integer sales) {
        this.sales = sales;
    }

    public void setStock(final Integer stock) {
        this.stock = stock;
    }

    public void setCombination(final Integer combination) {
        this.combination = combination;
    }

    public void setIsPostage(final Integer isPostage) {
        this.isPostage = isPostage;
    }

    public void setPostage(final BigDecimal postage) {
        this.postage = postage;
    }

    public void setDescription(final String description) {
        this.description = description;
    }

    public void setEffectiveTime(final Integer effectiveTime) {
        this.effectiveTime = effectiveTime;
    }

    public void setBrowse(final Integer browse) {
        this.browse = browse;
    }

    public void setUnitName(final String unitName) {
        this.unitName = unitName;
    }

    @JsonProperty("is_sub")
    public void setIsSub(final Integer isSub) {
        this.isSub = isSub;
    }

    public boolean equals(final Object o) {
        if (o == this) {
            return true;
        } else if (!(o instanceof StoreCombinationQueryVo)) {
            return false;
        } else {
            StoreCombinationQueryVo other = (StoreCombinationQueryVo)o;
            if (!other.canEqual(this)) {
                return false;
            } else {
                label263: {
                    Object this$id = this.getId();
                    Object other$id = other.getId();
                    if (this$id == null) {
                        if (other$id == null) {
                            break label263;
                        }
                    } else if (this$id.equals(other$id)) {
                        break label263;
                    }

                    return false;
                }

                Object this$productId = this.getProductId();
                Object other$productId = other.getProductId();
                if (this$productId == null) {
                    if (other$productId != null) {
                        return false;
                    }
                } else if (!this$productId.equals(other$productId)) {
                    return false;
                }

                label249: {
                    Object this$merId = this.getMerId();
                    Object other$merId = other.getMerId();
                    if (this$merId == null) {
                        if (other$merId == null) {
                            break label249;
                        }
                    } else if (this$merId.equals(other$merId)) {
                        break label249;
                    }

                    return false;
                }

                Object this$people = this.getPeople();
                Object other$people = other.getPeople();
                if (this$people == null) {
                    if (other$people != null) {
                        return false;
                    }
                } else if (!this$people.equals(other$people)) {
                    return false;
                }

                label235: {
                    Object this$sales = this.getSales();
                    Object other$sales = other.getSales();
                    if (this$sales == null) {
                        if (other$sales == null) {
                            break label235;
                        }
                    } else if (this$sales.equals(other$sales)) {
                        break label235;
                    }

                    return false;
                }

                Object this$stock = this.getStock();
                Object other$stock = other.getStock();
                if (this$stock == null) {
                    if (other$stock != null) {
                        return false;
                    }
                } else if (!this$stock.equals(other$stock)) {
                    return false;
                }

                label221: {
                    Object this$combination = this.getCombination();
                    Object other$combination = other.getCombination();
                    if (this$combination == null) {
                        if (other$combination == null) {
                            break label221;
                        }
                    } else if (this$combination.equals(other$combination)) {
                        break label221;
                    }

                    return false;
                }

                label214: {
                    Object this$isPostage = this.getIsPostage();
                    Object other$isPostage = other.getIsPostage();
                    if (this$isPostage == null) {
                        if (other$isPostage == null) {
                            break label214;
                        }
                    } else if (this$isPostage.equals(other$isPostage)) {
                        break label214;
                    }

                    return false;
                }

                Object this$effectiveTime = this.getEffectiveTime();
                Object other$effectiveTime = other.getEffectiveTime();
                if (this$effectiveTime == null) {
                    if (other$effectiveTime != null) {
                        return false;
                    }
                } else if (!this$effectiveTime.equals(other$effectiveTime)) {
                    return false;
                }

                label200: {
                    Object this$browse = this.getBrowse();
                    Object other$browse = other.getBrowse();
                    if (this$browse == null) {
                        if (other$browse == null) {
                            break label200;
                        }
                    } else if (this$browse.equals(other$browse)) {
                        break label200;
                    }

                    return false;
                }

                label193: {
                    Object this$isSub = this.getIsSub();
                    Object other$isSub = other.getIsSub();
                    if (this$isSub == null) {
                        if (other$isSub == null) {
                            break label193;
                        }
                    } else if (this$isSub.equals(other$isSub)) {
                        break label193;
                    }

                    return false;
                }

                Object this$image = this.getImage();
                Object other$image = other.getImage();
                if (this$image == null) {
                    if (other$image != null) {
                        return false;
                    }
                } else if (!this$image.equals(other$image)) {
                    return false;
                }

                Object this$images = this.getImages();
                Object other$images = other.getImages();
                if (this$images == null) {
                    if (other$images != null) {
                        return false;
                    }
                } else if (!this$images.equals(other$images)) {
                    return false;
                }

                label172: {
                    Object this$sliderImageArr = this.getSliderImageArr();
                    Object other$sliderImageArr = other.getSliderImageArr();
                    if (this$sliderImageArr == null) {
                        if (other$sliderImageArr == null) {
                            break label172;
                        }
                    } else if (this$sliderImageArr.equals(other$sliderImageArr)) {
                        break label172;
                    }

                    return false;
                }

                Object this$title = this.getTitle();
                Object other$title = other.getTitle();
                if (this$title == null) {
                    if (other$title != null) {
                        return false;
                    }
                } else if (!this$title.equals(other$title)) {
                    return false;
                }

                Object this$info = this.getInfo();
                Object other$info = other.getInfo();
                if (this$info == null) {
                    if (other$info != null) {
                        return false;
                    }
                } else if (!this$info.equals(other$info)) {
                    return false;
                }

                label151: {
                    Object this$price = this.getPrice();
                    Object other$price = other.getPrice();
                    if (this$price == null) {
                        if (other$price == null) {
                            break label151;
                        }
                    } else if (this$price.equals(other$price)) {
                        break label151;
                    }

                    return false;
                }

                Object this$productPrice = this.getProductPrice();
                Object other$productPrice = other.getProductPrice();
                if (this$productPrice == null) {
                    if (other$productPrice != null) {
                        return false;
                    }
                } else if (!this$productPrice.equals(other$productPrice)) {
                    return false;
                }

                label137: {
                    Object this$postage = this.getPostage();
                    Object other$postage = other.getPostage();
                    if (this$postage == null) {
                        if (other$postage == null) {
                            break label137;
                        }
                    } else if (this$postage.equals(other$postage)) {
                        break label137;
                    }

                    return false;
                }

                Object this$description = this.getDescription();
                Object other$description = other.getDescription();
                if (this$description == null) {
                    if (other$description != null) {
                        return false;
                    }
                } else if (!this$description.equals(other$description)) {
                    return false;
                }

                Object this$unitName = this.getUnitName();
                Object other$unitName = other.getUnitName();
                if (this$unitName == null) {
                    if (other$unitName == null) {
                        return true;
                    }
                } else if (this$unitName.equals(other$unitName)) {
                    return true;
                }

                return false;
            }
        }
    }

    protected boolean canEqual(final Object other) {
        return other instanceof StoreCombinationQueryVo;
    }

    public int hashCode() {
        boolean PRIME = true;
        int result = 1;
        Object $id = this.getId();
        result = result * 59 + ($id == null ? 43 : $id.hashCode());
        Object $productId = this.getProductId();
        result = result * 59 + ($productId == null ? 43 : $productId.hashCode());
        Object $merId = this.getMerId();
        result = result * 59 + ($merId == null ? 43 : $merId.hashCode());
        Object $people = this.getPeople();
        result = result * 59 + ($people == null ? 43 : $people.hashCode());
        Object $sales = this.getSales();
        result = result * 59 + ($sales == null ? 43 : $sales.hashCode());
        Object $stock = this.getStock();
        result = result * 59 + ($stock == null ? 43 : $stock.hashCode());
        Object $combination = this.getCombination();
        result = result * 59 + ($combination == null ? 43 : $combination.hashCode());
        Object $isPostage = this.getIsPostage();
        result = result * 59 + ($isPostage == null ? 43 : $isPostage.hashCode());
        Object $effectiveTime = this.getEffectiveTime();
        result = result * 59 + ($effectiveTime == null ? 43 : $effectiveTime.hashCode());
        Object $browse = this.getBrowse();
        result = result * 59 + ($browse == null ? 43 : $browse.hashCode());
        Object $isSub = this.getIsSub();
        result = result * 59 + ($isSub == null ? 43 : $isSub.hashCode());
        Object $image = this.getImage();
        result = result * 59 + ($image == null ? 43 : $image.hashCode());
        Object $images = this.getImages();
        result = result * 59 + ($images == null ? 43 : $images.hashCode());
        Object $sliderImageArr = this.getSliderImageArr();
        result = result * 59 + ($sliderImageArr == null ? 43 : $sliderImageArr.hashCode());
        Object $title = this.getTitle();
        result = result * 59 + ($title == null ? 43 : $title.hashCode());
        Object $info = this.getInfo();
        result = result * 59 + ($info == null ? 43 : $info.hashCode());
        Object $price = this.getPrice();
        result = result * 59 + ($price == null ? 43 : $price.hashCode());
        Object $productPrice = this.getProductPrice();
        result = result * 59 + ($productPrice == null ? 43 : $productPrice.hashCode());
        Object $postage = this.getPostage();
        result = result * 59 + ($postage == null ? 43 : $postage.hashCode());
        Object $description = this.getDescription();
        result = result * 59 + ($description == null ? 43 : $description.hashCode());
        Object $unitName = this.getUnitName();
        result = result * 59 + ($unitName == null ? 43 : $unitName.hashCode());
        return result;
    }

    public String toString() {
        return "StoreCombinationQueryVo(id=" + this.getId() + ", productId=" + this.getProductId() + ", merId=" + this.getMerId() + ", image=" + this.getImage() + ", images=" + this.getImages() + ", sliderImageArr=" + this.getSliderImageArr() + ", title=" + this.getTitle() + ", people=" + this.getPeople() + ", info=" + this.getInfo() + ", price=" + this.getPrice() + ", productPrice=" + this.getProductPrice() + ", sales=" + this.getSales() + ", stock=" + this.getStock() + ", combination=" + this.getCombination() + ", isPostage=" + this.getIsPostage() + ", postage=" + this.getPostage() + ", description=" + this.getDescription() + ", effectiveTime=" + this.getEffectiveTime() + ", browse=" + this.getBrowse() + ", unitName=" + this.getUnitName() + ", isSub=" + this.getIsSub() + ")";
    }
}
